package edu.cuit.canary.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDate;

/**
 * @TableName: 映射数据表，默认名称为类的简单名称(小写驼峰）
 * @TableFiled： 映射字段，默认名称为属性名称(驼峰)
 * @author <a href="mailto:1020zhaodan@163.com">Adan</a>
 * @version 1.0
 * @date 2025/8/25 10:24
 */
@Data
@Accessors(chain = true)
//@TableName("tb_book")
public class Book extends Model<Book> {
    /**
     * @TableId: 映射主键字段
     *      value: 字段名称,默认为属性名
     *      type: 主键生成策略
     *          AUTO: 数据库底层自增
     *          NONE--> ASSIGN_ID: 分布式唯一id(雪花算法)
     *          ASSIGN_ID: 分布式唯一id(雪花算法)
     *          INPUT: 程序生成指定
     *          ASSIGN_UUID: UUID
     */
    //@TableId(type = IdType.AUTO)
    private Integer id;

    private String title;
    private String author;
    private String publisher;
    private int price;
    private LocalDate publishDate;

    @Version //乐观锁字段
    private int version;
}
